1. Field of the Invention
The invention is related to computers and computer technology, and in particular, to computer memory.
2. Background Information
In today""s computers under certain conditions it is often desirable to speed up and slow down the computer""s operations. This slowing down and speeding up is sometimes called xe2x80x9cthrottling.xe2x80x9d Throttling can be for a variety of reasons. For example, throttling can be used to conserve battery power in mobile computers.
Throttling also can be used in association with the computer""s memory devices or memory controller. Slowing down and speeding up the rate of requests in association with memory is often referred to as xe2x80x9cmemory throttling,xe2x80x9d which reduces memory accesses. This may also be referred to as xe2x80x9cthermal throttlingxe2x80x9d because memory devices and controllers can overheat if there are too many memory accesses over a period of time. Overheating is particularly troublesome in mobile or other low-power computers.
Memory throttling can have a negative impact in, for example, systems that have real-time requirements. Systems that use display streams, such as video conferencing and movie previewing, for example, have strict real-time requirements and must be guaranteed fast access to memory. If the memory controller fails to respond quickly enough to memory requests from the computer display, the local buffer associated with the computer display underflows, which causes flickers on the computer display. To minimize chances of buffer underflow, the computer display typically makes many accesses to memory, each access being for a small amount of pixels.
There are many existing schemes to throttle memory. One such scheme counts the number of memory accesses occurring during a period of time. If the number of memory accesses exceeds a threshold number of memory accesses, then all subsequent accesses to memory are blocked for another, longer period of time. That is, memory is unavailable for a long period of time, which is troublesome in computers that process streaming data in real time.